# 魔术方法：会自动调用的方法
# __init__  通过类创建对象时，会自动调用
# __str__  在打印/显示一个对象时，会自动调用
# __call__  将要给对象当作函数调用，会自动调用
class Book:
    def __init__(self, title, author):
        print('执行了初始化的操作 __init__')
        self.title = title
        self.author = author
    def __str__(self):
        # 写其它的逻辑
        # 最后必须返回的是字符串
        return f'书名：{self.title} 作者：{self.author}'
    def __call__(self):
        print('__call__方法被调用了')
b1 = Book('Python程序设计', '尼古拉斯')
print(b1)
b1()